package com.zjl.redis.第15章_缓存预热_雪崩_击穿_穿透;

/**
 * 缓存击穿
 * 现象
 * 1.数据库访问压力瞬时增加
 * 2.redis里面没有出现大量key过期
 * 3.redis正常运行
 *
 * 原因：
 * 1.redis某个key过期了，大量访问使用这个key
 *
 * key可能会在某些时间点被超高并发地访问,是一种非常“热点”的数据。
 * 这个时候,需要考虑一个问题:缓存被”击穿”的问题。
 * 解决问题:
 * (1)预先设置热门数据:在redis高峰访问之前,把一些热门数据提前存入到
 *    redis里面,加大这些热门数据key的时长。
 * (2)实时调整:现场监控哪些数据热门,实时调整key的过期时长
 * (3)使用锁://效率低
 *      (1) 就是在缓存失效的时候(判断拿出来的值为空) ,不是立即去load db。
 *      (2) 先使用缓存工具的某些带成功操作返回值的操作(比如Redis的SETNX )
 *
 *
 * 还有就是，那种淘宝推荐，在推荐时间结束的那一瞬间，
 * 推荐的东西最好存在 redis，但在新的推荐和老的推荐之间，最好先新增新的数据，再删除老的数据
 * 而且删除的时候，也不能全删除，
 *      1.差异化过期时间
 *      2.双缓存，A  B  下查询，存两份，过期时间不一致，一个查不到，去另一个查
 *
 */
public class C_缓存击穿 {
}